The present invention relates to a switch for selectively attaching desired peripheral devices to a desired Universal Serial Bus device.
Universal Serial Bus (USB) is a peripheral bus standard developed by the PC and telecom industry, including Compaq, DEC, IBM, Intel, Microsoft, NEC and Northern Telecom. USB defines a bus and protocols for the connection of computer peripherals to computers (and to each other). "Universal Serial Bus Specification", Compaq, Intel, Microsoft, NEC, Revision 1.1, Sep. 23, 1998, describes USB and its implementation and is incorporated herein by reference. Proposed and actual USB devices include keyboards, mice, telephones, digital cameras, modems, digital joysticks, CD-ROM drives, tape and floppy drives, digital scanners, printers, MPEG-2 video-base products, data digitizers and other relatively low bandwidth devices. USB supports data rates of up to 12 Mbits/sec.
USB supports the dynamic insertion and removal of devices from the bus. USB recognizes actual peripherals or "functions"; hosts (typically a computer); and hubs, which are intermediate nodes in the network that allow the attachment of multiple upstream hubs or functions. Upon insertion of an upstream hub or function, the host/hub on the downstream side of the bus initiates a bus enumeration to identify and configure the new device. Upon removal, the removed device is "forgotten". Referring to FIGS. 1 and 2, the process of enumeration is triggered by a pull-up resistor R.sub.pu inside the new device that is connected to one of the USB data lines D.sup.+, D.sup.-. One side of R.sub.pu is connected to a voltage related to the bus supply voltage V.sub.BUS and the other is connected to D+ for a high-speed connection (less than 12 Mbits/sec) or to D- for a low-speed connection (less than 1.5 Mbits/sec). When a device is plugged into the bus, the voltage across R.sub.pu is detected by the downstream host/hub and when the device is removed, the absence of the voltage is detected by the downstream host/hub.
The USB specification expects devices to be physically plugged in or removed from the bus in order to be recognized or "forgotten". It is desirable to be able to share the various new USB peripherals with more than one USB computer. It is also desirable to be able to control several USB computers with a single USB mouse and keyboard combination. Unfortunately, these type operations are not supported in the USB specification.